﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;


public partial class Empresa_Reg_Empresa : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {



        if (!Page.IsPostBack)
        {
            try
            {
                cargarDptos();
                CargarListSectores();
            }
            catch
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('No se ha realizado la configuración de departamentos y/o sectores empresariales ', {timeout: 5 , showClose: false });", true);
                ButtonRegistrar.Visible = false;
            }
        }


    }


    protected void ButtonRegistrar_Click(object sender, EventArgs e)
    {


        Empresa empComp = new Empresa();
        List<Empresa> listEmp = empComp.consultarEmpresa();
        bool existeNit = false;
        bool existeNombreUsr = false;

        foreach (Empresa emps in listEmp)
        {
            if (TextBoxNit.Text == emps.ObtNit())
                existeNit = true;
            if (TextBoxNomUsuario.Text == emps.ObtNombreUsuario())
                existeNombreUsr = true;
        }

        if (existeNit == false && existeNombreUsr == false)
        {
            Empresa emp = new Empresa(TextBoxNit.Text, DropDownListSectorEmp.SelectedItem.ToString(), TextBoxPagWeb.Text, TextBoxDireccion.Text, 1, TextBoxNomUsuario.Text,
                TextBoxContrasena.Text, TextBoxNombre.Text, DropDownListDpto.SelectedItem.ToString(), DropDownListMunicipios.SelectedItem.ToString(), TextBoxEmail.Text, TextBoxTelefono.Text, DateTime.Now.ToString(), TextBoxExtension.Text);
            emp.CrearEmpresa();

            //Envio la notificacion de que sea registrado una empresa a los coordinadores
            EnviarNotificacionesAutomaticas(TextBoxNit.Text);

            if (Session["nomUsr"] == null)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('La información de la empresa ha sido enviada, se espera la revisión del coordinador de prácticas para activar el ingreso al sistema <br /><div align=\"center\"><a href=\"../empresa/Adm_empresa.aspx\"><img src=\"../images/ok2.png\"/></a></div>');", true);
            }
            else
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('La empresa ha sido registrada <br /><div align=\"center\"><a href=\"../empresa/Adm_empresa.aspx\"><img src=\"../images/ok2.png\"/></a></div>');", true);

        }
        else
        {
            if (existeNit == true)
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('El NIT ingresado ya existe', {timeout: 3 , showClose: false });", true);
            if (existeNombreUsr == true)
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('El nombre de usuario ingresado ya existe', {timeout: 3 , showClose: false });", true);

        }





    }

    private void cargarDptos()
    {
        Region reg = new Region();
        List<Region> listReg = reg.listarDepartamentos();
        DropDownListDpto.Items.Add("Seleccionar Departamento");
        foreach (Region regdpto in listReg)
        {
            DropDownListDpto.Items.Add(regdpto.ObtNombre());
        }
    }

    private void cargarMuncipios()
    {
        Region reg = new Region();
        List<Region> listReg = reg.listarMunicipios(DropDownListDpto.SelectedItem.ToString());
        DropDownListMunicipios.Items.Clear();

        foreach (Region regdpto in listReg)
        {
            DropDownListMunicipios.Items.Add(regdpto.ObtNombre());
        }


    }

    private void CargarListSectores()
    {
        DropDownListSectorEmp.Items.Clear();
        SectorEmp Semp = new SectorEmp();
        List<SectorEmp> listSemp = Semp.consultarSectorEmp();

        foreach (SectorEmp sem in listSemp)
        {
            DropDownListSectorEmp.Items.Add(sem.ObtNombre());
        }

    }


    protected void Button1_Click(object sender, EventArgs e)
    {


    }


    protected void DropDownListDpto_SelectedIndexChanged1(object sender, EventArgs e)
    {
        cargarMuncipios();
    }

    //FUNCION PARA ENVIAR NOTIFICACIONES AUTOMATICAS
    void EnviarNotificacionesAutomaticas(string empresa_nit)
    {
        GestionNotificaciones gN = new GestionNotificaciones();
        //Envio las notificaciones automaticas para que sepan que se registro una nueva empresa

        Empresa emp = new Empresa();
        emp = emp.BuscarUnicaEmp(empresa_nit);

        if (emp != null)
        {
            //Construyo la info que va a llevar la solicitud:
            String descripcion = string.Empty;
            descripcion += string.Format("Fecha Registro: {0}\n", emp.Obtfecha());
            descripcion += String.Format("Sector Empresa: {0}\n", emp.ObtSectorEmp());
            descripcion += String.Format("Nit Empresa   : {0}\n", emp.ObtNit());
            descripcion += String.Format("Nombre Empresa: {0}\n", emp.ObtNombre());
            descripcion += "\nRecuerde activar la cuenta de la empresa.";
            Usuario tmp = new Usuario();
            List<Usuario> usuarios = tmp.ConsultarUsuariosPorRol("coordinador");
            foreach (Usuario usuarioCoord in usuarios)
                gN.CrearNotificacion(usuarioCoord.ObtNombreUsuario(), usuarioCoord.ObtNombreUsuario(), "Nueva Empresa Registrada", descripcion);
        }
    }

}